from flask import Blueprint

# 不要忘了是url_prefix('/news')，不是url_prefix('news')
from flask import redirect
from flask import request
from flask import session
from flask import url_for

admin_blue = Blueprint('admin', __name__)

from . import views


@admin_blue.before_request
def before_request():
    # 核心: 获取session的user_id和is_admin
    # 发现数据不对, 就返回.

    # 下面的代码目前会导致, 登录界面都无法访问
    # 如果不是登录界面, 才使用下面的代码

    # if not request.url.endswith('login1234'): 如果这样判断可能会有问题,应该动态获取

    # 如果访问的URL地址后缀, 不是登录的路由, 就进行权限判断
    if not request.url.endswith(url_for('admin.login')):

        user_id = session.get("user_id", None)
        is_admin = session.get("is_admin", False)

        if not user_id or not is_admin:
            # 判断当前是否有用户登录，或者是否是管理员，如果不是，直接重定向到项目主页
            return redirect('/')
    # 如果是登录界面的路由地址, 则什么都不干
